/**
 * @file event.scrollStop.js
 */


var $ = Zepto;
var throttle = require('./throttle.js');



/**
 * @name scrollStop
 * @desc 扩展的事件，滚动停止事件
 * - ***scrollStop*** : 在document上派生的scrollStop事件上，scroll停下来时触发, 考虑前进或者后退后scroll事件不触发情况。
 * @example $(document).on('scrollStop', function () {        //scroll停下来时显示scrollStop
 *     console.log('scrollStop');
 * });
 */

var win = window;

function registerScrollStop() {
    $(win).on('scroll', $.debounce(80, function () {
        $(win).trigger('scrollStop');
    }, false));
}

function backEventOffHandler() {
    // 在离开页面，前进或后退回到页面后，重新绑定scroll, 需要off掉所有的scroll，否则scroll时间不触发
    $(win).off('scroll');
    registerScrollStop();
}
registerScrollStop();

// todo 待统一解决后退事件触发问题
$(win).on('pageshow', function (e) {
    // 如果是从bfcache中加载页面，为了防止多次注册，需要先off掉
    e.persisted && $(win).off('touchstart', backEventOffHandler).one('touchstart', backEventOffHandler);
});
